package com.hxgz.steel.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author WT
 * 正则工具类
 */
public class ExtractStringUtils {

    private ExtractStringUtils(){}

    /**
     * 匹配所有数字带小数
     */
    private final static Pattern NUMBER_PATTERN = Pattern.compile("^[0-9]+(.[0-9]{0,2})?$");

    /**
     * 匹配纯正数不带小数
     */
    private final static Pattern POSITIVE_NUMBER = Pattern.compile("[0-9]*");

    /**
     * 提取所有数字
     * @param str
     * @return 所有数字
     */
    public static String numStr(String str){
        //所有数字正则
        String num = "[^0-9]";
        //提取所有文字
        String numStr = str.replaceAll(num,"");
        return numStr;
    }

    /**
     * 提取所有的中文
     * @param str
     * @return 所有中文
     */
    public static String gbkStr(String str){
        //所有中文字符
        String gbk="[^\\u4e00-\\u9fa5]";
        //提取所有中文
        String gbkStr = str.replaceAll(gbk,"");
        return gbkStr;
    }

    /**
     * 判断一个字符串是不是纯数字带小数点的
     * @param str
     * @return 是 true/ 否 false
     */
    public static boolean isNumStr(String str){
        Matcher isNum = NUMBER_PATTERN.matcher(str);
        return isNum.matches();
    }

    /**
     * 判断某字符串是不是纯数字不带小数点
     * @param str
     * @return 是 true/否false
     */
    public static boolean isPositiveNumber(String str){
        Matcher isPositiveNumber =  POSITIVE_NUMBER.matcher(str);
        return isPositiveNumber.matches();
    }
}
